package control;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import modelo.*;
import persistencia.*;

@WebServlet(urlPatterns = {"/registrar"})
public class RegisterServlet extends HttpServlet {

    //Se recogen los valores de los campos del registro.
    //Se crea un usuario con los valores anteriores y se inserta en la BD.
    //Se informa de lo ocurrido durante el proceso.
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        
        String user = request.getParameter("username");
        String pass = request.getParameter("password");
        String email = request.getParameter("email");
        
            try
            {
                Usuario usu = new Usuario(user, pass, email, 0, 0);
                PersistenciaBD persistencia = PersistenciaBD.getInstance();
                
                if (persistencia.addClient(usu))
                {
                    request.setAttribute("username", "");
                    request.setAttribute("password", "");
                    request.setAttribute("repeatPassword", "");
                    request.setAttribute("email", "");
                    request.setAttribute("mensajeCorrecto", "Usuario Creado correctamente");
                }
                else
                {
                    request.setAttribute("mensajeError", "Fallo en addClient");
                }
            } 
            catch (Exception e)
            {
                request.setAttribute("mensajeError", "Fallo creando el usuario");
            }
        request.getRequestDispatcher("register.jsp").forward(request, response);
    }
    
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    public String getServletInfo() {
        return "Servlet para registrar usuarios";
    }
}